Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add IO Connections for Custom User Field in TL Channels within Xbar #3637

Merged
merged 3 commits into from
Jul 18, 2024

Conversation

ksungkeun84
Copy link
Contributor

Please refer to the issue page below.
ucb-bar/chipyard#1888

Related issue: ucb-bar/chipyard#1888

Type of change: bug report

Impact: Affect custom user field of TL Channels

Development Phase: proposal | implementation

Release Notes

Copy link

linux-foundation-easycla bot commented May 30, 2024

CLA Signed

The committers listed above are authorized under a signed CLA.

@ksungkeun84
Copy link
Contributor Author

@jerryz123 Hi Jerry, I've made a PR in the rocket-chip for the issue I reported to the chipyard. Could you please review it?
ucb-bar/chipyard#1888

Copy link
Contributor

@jerryz123 jerryz123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is removing the := DontCare sufficient? The x.waiveAll :<>= y.waiveAll pattern should connect the user fields

@ksungkeun84
Copy link
Contributor Author

@jerryz123 I'm not sure what waiveAll does exactly, but when I remove := DonCare, compilation failed as follows.
generators/rocket-chip/src/main/scala/tilelink/Xbar.scala:155:18: error: sink "in_0_a_bits_user_myuserfield_myfield" not fully initialized in "TLXbar".

Could you please guide me a better way to connect userfield than I used?

@jerryz123
Copy link
Contributor

@sequencer can you assist?

@sequencer
Copy link
Member

@sequencer can you assist?

Sure, will have a try this weekend.

@ksungkeun84
Copy link
Contributor Author

Thanks @sequencer for you help. Let me know if you have anything from me.

 DontCare should come first before waiveAll so that matching userfield
 bewteen bundles can be connected
 Please refer to the issue page below.
 ucb-bar/chipyard#1888
@ksungkeun84
Copy link
Contributor Author

ksungkeun84 commented Jul 18, 2024

Hi @jerryz123 and @sequencer,
I'm been digging into this issue and figured out that my initial fix does not work perfectly. After I fully understand about squeezeAll, waiveAll, and DontCare, I'd like to propose better fix.

The fix is very simple and it just make DontCare comes first and then connect bundles.
By doing this way, if pair of bundles have the same user field it will neighter waived out nor treated as DontCare.

Would you review my update and merge it if you agree on it?

@jerryz123
Copy link
Contributor

The new fix looks good. Thanks for investigating

@jerryz123 jerryz123 changed the base branch from master to dev July 18, 2024 02:04
@ksungkeun84
Copy link
Contributor Author

Thanks for your quick response!

I think this module is not tested during Chisel version is updated.
I fixed compiler error by chiselTypeOf
@jerryz123 jerryz123 merged commit 4b33216 into chipsalliance:dev Jul 18, 2024
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants